<?php namespace Admin\Controller; 
//Cate类控制器
class CateController extends CommonController{
	//实例化Model中的Cate类
	private $model;
	public function __auto(){
		$this->model = new \Common\Model\Cate;
	}
	
	//列表展示
	public function index(){
		
//		if(IS_POST){
//			//调用模型文件里的Type类的store方法去执行数据添加
//			$this->model->edit();
//
//		}	
//		p($data = $this->model->lists('cid'));
//		foreach(q('post.',null) as $v){
//			
//		};

		//导入数据库中的数据
		$data = $this->model->orderBy('sort','ASC')->get();
		//如果没有一个分类，那先去添加
		if(!$data){
			View::error('请先添加商品分类',U('Cate/add'));
		}		
		//变为用树形结构，因为树形结构的样式可以显示层级结构
		//Data::tree($data, $title, $fieldPri = 'cid', $fieldPid = 'pid');
		$data = Data::tree($data,'cname','cid','pid');
		//分配数据
		View::with('data',$data);		
		View::make();
	}
	
	//添加
	public function add(){
		if(IS_POST){
			//调用模型文件里的Cata类的store方法去执行数据添加
			if($this->model->store()){
				//若模型类中数据验证正确，成功
				View::success("成功",U('Cate/index'));	
			}
			//提示错误
			View::error($this->model->getError());
		}
		View::make();
	}
	
		//添加
	public function addson(){
		if(IS_POST){
			//调用模型文件里的Cata类的store方法去执行数据添加
			if($this->model->store()){
				//若模型类中数据验证正确，成功
				View::success("成功",U('Cate/index'));	
			}
			//提示错误
			View::error($this->model->getError());
		}
		/*1.获取所有类型列表*/
		$TypeModel = new \Common\Model\Type;
		$typeData = $TypeModel->get();
		View::with('typeData',$typeData);
		/*2.获得所属分类，用于pid*/
		//获取当前要添加分类id的
		$cid = q('get.cid',0,'intval');
		$cate = $this->model->where("cid={$cid}")->find();
		//分配数据到前端页面
		View::with('cate',$cate);
		View::make();
	}
	
		//修改
	public function edit(){
		/*2.执行添加*/
		if(IS_POST){
			//调用模型文件里的Type类的store方法去执行数据添加
			if($this->model->edit()){
				//若模型类中数据验证正确，成功
				View::success('类型名称修改成功',U('Cate/index'));
			}
			//提示错误
			View::error($this->model->getError());
		}	
		/*1.获取原始数据*/
		$cid = q('get.cid',null,'intval');
		//获取旧数据
		$oldData = $this->model->where('cid',$cid)->find();
		View::with('oldData',$oldData);
		View::make();
	}
	
	public function editson(){
		/*2.执行添加*/
		if(IS_POST){
			//调用模型文件里的Type类的store方法去执行数据添加
			if($this->model->edit()){
				//若模型类中数据验证正确，成功
				View::success('类型名称修改成功',U('Cate/index'));
			}
			//提示错误
			View::error($this->model->getError());
		}	
		/*1.获取旧数据*/		
		$cid = q('get.cid',null,'intval');		
		//关联type表
		$oldData = Db::table('cate c')
			->join('type t','c.type_tid','=','t.tid')
			->where("cid={$cid}")
			->first();			//获取二维数组	
		View::with('oldData',$oldData);
		/*2.获取所有类型列表*/
		$TypeModel = new \Common\Model\Type;
		$typeData = $TypeModel->get();
		View::with('typeData',$typeData);
		
		View::make();
	}	
	
	//删除
	public function del(){

	/*2.子分类上移位置*/
	//获取当前要删除的id
	$cid = q('get.cid',0,'intval');
	//获取当前要删除的父级pid
	$pid = $this->model->where("cid={$cid}")->pluck('pid'); //pluck直接获取值
	//把父级pid赋给它的直接子级
	$this->model->where("pid={$cid}")->update(array('pid'=>$pid));
	//执行删除
	$this->model->where("cid={$cid}")->delete();
	View::success('删除成功');
	}
}
